package com.ruoyi.drone.service;

import java.util.List;
import com.ruoyi.drone.domain.DroneTaskCategory;

/**
 * 任务分类Service接口
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public interface IDroneTaskCategoryService 
{
    /**
     * 查询任务分类
     * 
     * @param categoryId 任务分类主键
     * @return 任务分类
     */
    public DroneTaskCategory selectDroneTaskCategoryByCategoryId(Long categoryId);

    /**
     * 根据分类编码查询任务分类
     * 
     * @param categoryCode 分类编码
     * @return 任务分类
     */
    public DroneTaskCategory selectDroneTaskCategoryByCategoryCode(String categoryCode);

    /**
     * 查询任务分类列表
     * 
     * @param droneTaskCategory 任务分类
     * @return 任务分类集合
     */
    public List<DroneTaskCategory> selectDroneTaskCategoryList(DroneTaskCategory droneTaskCategory);

    /**
     * 查询所有启用的任务分类
     * 
     * @return 任务分类集合
     */
    public List<DroneTaskCategory> selectAllEnabledCategories();

    /**
     * 新增任务分类
     * 
     * @param droneTaskCategory 任务分类
     * @return 结果
     */
    public int insertDroneTaskCategory(DroneTaskCategory droneTaskCategory);

    /**
     * 修改任务分类
     * 
     * @param droneTaskCategory 任务分类
     * @return 结果
     */
    public int updateDroneTaskCategory(DroneTaskCategory droneTaskCategory);

    /**
     * 批量删除任务分类
     * 
     * @param categoryIds 需要删除的任务分类主键集合
     * @return 结果
     */
    public int deleteDroneTaskCategoryByCategoryIds(Long[] categoryIds);

    /**
     * 删除任务分类信息
     * 
     * @param categoryId 任务分类主键
     * @return 结果
     */
    public int deleteDroneTaskCategoryByCategoryId(Long categoryId);

    /**
     * 检查分类编码是否唯一
     * 
     * @param categoryCode 分类编码
     * @return 结果
     */
    public boolean checkCategoryCodeUnique(String categoryCode);
}
